     $(function() {
   
    $( "#dialog:ui-dialog" ).dialog( "destroy" );
    
    var name = $( "#user_name" ),
        email = $("#email"),
        phone = $("#phone_num"),
        city = $("#city"),
        landline = $("#landline"),
        loc_addr = $("#loc_addr"),            
        per_addr = $("#per_addr")
     
      allFields = $( [] ).add( name ).add( email ).add( phone ).add( city ).add( landline ).add(loc_addr).add(per_addr),
      tips = $( ".validateTips" );

    function updateTips( t ) {
      tips
        .text( t )
        .addClass( "ui-state-highlight" );
      setTimeout(function() {
        tips.removeClass( "ui-state-highlight", 1500 );
      }, 500 );
    }

    function checkLength( o, n, min, max ) {
      if(o.val() == "")
      {
        o.addClass( "ui-state-error" );
        updateTips( "All fields must be entered!!" );
        return false;
      }
      
      if ( o.val().length > max || o.val().length < min ) {
        o.addClass( "ui-state-error" );
        updateTips( "Length of " + n + " must be between " +
          min + " and " + max + "." );
        return false;
      } else {
        return true;
      }
    }
       
    function checkRegexp( o, regexp, n ) {
      if ( !( regexp.test( o.val() ) ) ) {
        o.addClass( "ui-state-error" );
        updateTips( n );
        return false;
      } else {
        return true;
      }
    }   
       
       
    $( "#dialog-form" ).dialog({
      autoOpen: false,
      height:610,
      position:[600,10],
      width: 550,
      modal: true,
      buttons: {
        "Save User": function() {
          var bValid = true;
          allFields.removeClass( "ui-state-error" );

          bValid = bValid && checkLength( name, "User Name", 3, 100 );
          bValid = bValid && checkRegexp( name, /^[a-z]([a-z ])+$/i, "Username may consist of a-z, begin with a letter." );
          bValid = bValid && checkLength( email, "email", 6, 100 );
          bValid = bValid && checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. user@idea.com" );
          bValid = bValid && checkLength( phone, "Phone Number",10,14 );
          bValid = bValid && checkRegexp( phone, /^[0-9]([0-9])+$/i, "Phone Number may consist of 0-9, begin with a Number." );
          bValid = bValid && checkLength( city, "City Name",1,4 );
          bValid = bValid && checkLength( landline, "Land Number",10,14 );
          bValid = bValid && checkRegexp( landline, /^[0-9]([0-9])+$/i, "Landline Number may consist of 0-9, begin with a Number." );
          bValid = bValid && checkLength( loc_addr, "Local Address", 15, 200 );
          bValid = bValid && checkRegexp( loc_addr, /^[a-z]([a-z0-9,# ])+$/i, "Address may consist of a-z or 0-9, begin with a letter." );
          bValid = bValid && checkLength( per_addr, "Permanent Address", 15, 200 );
          bValid = bValid && checkRegexp( per_addr, /^[a-z]([a-z0-9,# ])+$/i, "Address may consist of a-z or 0-9, begin with a letter." );
          
         
          if ( bValid ) {
               
             $.post("/user/ajax_addnew_user", { name:name.val(),email:email.val(),
                                                phone:phone.val(),city:city.val(),
                                                landline:landline.val(),loc_addr:loc_addr.val(),
                                                per_addr:per_addr.val()
                                                },
                          function(data){
                            
                                    alert(data);
                                    
                                    }, "json");   
                  
                      
            $( this ).dialog( "close" );
          }
        },
        Cancel: function() {
          $( this ).dialog( "close" );
        }
      },
      close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
      }
    });

    $( "#create-state" )
     
      .click(function() {
        $( "#dialog-form" ).dialog( "open" );
      });
  });
     

